// pages/generaluser/generaluser.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    
    timeOptions: ['￥20/天','￥30/天', '￥40/天','$50/天'],
    timeOptionIndex: 0,
    campTypes: ['类型A', '类型B', '类型C'], // 这里可以替换为从后端获取的数据
    campTypeIndex: 0,
    tempFilePaths: [],
    campName: '',
    location: '',
    contact: '',
    phone: '',
    // 初始开关状态  
    switchStatus: false,
    show: false,
    // 用于存储每个复选框的选中状态  
    isChecked: {  
      water: false,  
      electricity: false  
    },  
    // 用于存储选中的营位条件  
    selectedConditions: []  
  },
  // 开关状态改变时触发的事件处理函数  
  changeSwitchStatus: function(e) {  
    // 获取开关的当前状态  
    const switchStatus = e.detail.value;  
    // 更新数据中的开关状态  
    this.setData({  
      switchStatus: switchStatus  
    });  
      
    // 根据开关状态执行相应操作，例如更新营地是否接待外来房车的状态  
    if (switchStatus) {  
      console.log('营地现在接待外来房车');  
    } else {  
      console.log('营地现在不接待外来房车');  
    }  
  },
  

  bindCampName: function(e) {
    this.setData({ campName: e.detail.value });
  },
  bindLocation: function(e) {
    this.setData({ location: e.detail.value });
  },
  bindType: function(e) {
    this.setData({ Type: e.detail.value });
  },
  bindCost: function(e) {
    this.setData({ Cost: e.detail.value });
  },
  bindRegionChange: function(e) {
    this.setData({ region: e.detail.value });
  },
  bindTimeOptionChange: function(e) {
    this.setData({ timeOptionIndex: e.detail.value });
  },
  bindCampTypeChange: function(e) {
    this.setData({ campTypeIndex: e.detail.value });
  },
  bindCampCostChange: function(e) {
    this.setData({ campCostIndex: e.detail.value });
  },
  bindContact: function(e) {
    this.setData({ contact: e.detail.value });
  },
  bindPhone: function(e) {
    this.setData({ phone: e.detail.value });
  },
  chooseImage: function() {
    const that = this;
    wx.chooseImage({
      count: 1,
      sizeType: ['original', 'compressed'],
      sourceType: ['album', 'camera'],
      success: function(res) {
        that.setData({
          tempFilePaths: res.tempFilePaths
        });
      }
    });
  },
  previewData: function() {
    const data = {
      营地名称: this.data.campName,
      
      具体位置: this.data.location,
      营业费用: this.data.timeOptions[this.data.timeOptionIndex],
      营地类型: this.data.campTypes[this.data.campTypeIndex],
      联系人: this.data.contact,
      联系电话: this.data.phone,
      图片: this.data.tempFilePaths
    };
    wx.showModal({
      title: '预览',
      content: JSON.stringify(data, null, 2),
      showCancel: false
    });
  },
  submitData: function() {
    // 这里添加提交到后端的逻辑
    console.log('数据已提交');
    wx.showToast({
      title: '提交成功',
      icon: 'success'
    });
  },


  // 营地位置
  selectSite() {
    // 检查用户权限状态
    wx.getSetting({
      success: res => {
        if (!res.authSetting['scope.userLocation']) {
          // 用户尚未授权或已拒绝授权
          // 主动请求授权
          this.requestLocationAuthorization();
        } else {
          // 已经授权，直接获取位置信息
          this.getUserLocation();
        }
      }
    })
  },

   //获取位置信息
   getUserLocation() {
    wx.getLocation({
      // type: 'wgs84',
      type: 'gcj02',
      success: (res) => {
        console.log(res, "返回的数据")
        this.setData({
          latitude: res.latitude,
          longitude: res.longitude,
        });
        wx.chooseLocation({
          longitude: this.data.longitude,
          latitude: this.data.latitude,
          success: (res) => {
            console.log(res, '########');
            this.setData({
              latitude: res.latitude,
              longitude: res.longitude,
              campLocation: res.address
            });
          },
          fail: err => {
            console.log(err)
          }
        })
      },
      fail: (err) => {
        console.error('获取位置失败:', err);
      },
      complete: () => {
        console.log('位置获取操作已完成');
      }
    });
  },
  // 请求授权
  requestLocationAuthorization() {
    // 请求用户授权精确位置
    wx.authorize({
      scope: 'scope.userLocation',
      success: () => {
        this.getUserLocation();
      },
      fail: (err) => {
        // 拒绝授权，提示用户收到开启
        this.showSettingPrompt()
      }
    })
  },

  showSettingPrompt() {
    wx.showModal({
      title: '需要位置权限',
      content: '请在设置中开启位置权限以正常使用本功能。',
      showCancel: false,
      confirmText: '去设置',
      success: (res) => {
        if (res.confirm) {
          wx.openSetting({
            success: (settingRes) => {
              if (settingRes.authSetting['scope.userLocation']) {
                // 用户在设置中开启了位置权限
                this.getUserLocation();
              } else {
                // 用户仍然拒绝位置权限
                console.log('用户仍未开启位置权限');
              }
            },
          });
        }
      },
    });
  },
  
  // 复选框状态改变时触发的事件处理函数  
  checkboxChange: function(e) {  
    // 获取选中的复选框的值  
    const selectedValues = e.detail.value;  
  
    // 更新每个复选框的选中状态  
    const isChecked = this.data.isChecked;  
    selectedValues.forEach(value => {  
      isChecked[value] = true;  
    });  
    // 取消未选中的复选框的状态  
    Object.keys(isChecked).forEach(key => {  
      if (!selectedValues.includes(key)) {  
        isChecked[key] = false;  
      }  
    });  
  
    // 更新选中的营位条件  
    this.setData({  
      isChecked: isChecked,  
      selectedConditions: selectedValues  
    });  
  },
  
  navigateToNewPage: function() {  
    wx.navigateTo({  
      url: '/pages/camptype/camptype'  // 注意这里的路径是相对于项目根目录的  
    });  
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})